package com.qf.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qf.dao.UserDao;
import com.qf.entity.User;
import com.qf.service.UserService;
import com.qf.util.BcrptyUtil;
import org.springframework.stereotype.Service;

/**
 * (User)表服务实现类
 *
 * @author makejava
 * @since 2020-11-30 09:27:51
 */
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {


    //md5 -> 不是加密算法，摘要算法
    //明文 -> md5 -> 32位字符串（不可逆的）
    //md5破解 -> 暴力破解 （查表法）
    //哈希算法(明文 + 盐值）
    @Override
    public boolean save(User entity) {

        //对密码进行加密
        String pass = BcrptyUtil.hashPassword(entity.getPassword());
        entity.setPassword(pass);

        return super.save(entity);
    }

    /**
     * 进行登录
     * @param username
     * @param password
     * @return
     */
    @Override
    public User login(String username, String password) {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("username", username);
        User user = getOne(queryWrapper);
        if (user != null) {
            //用户名正确,再比较密码
            if (BcrptyUtil.checkPassword(password, user.getPassword())){
                //用户和密码都正常匹配
                return user;
            }
        }
        return null;
    }
}